Ray支持构建可扩展的人工智能(AI)和Python应用程序,广泛应用于机器学习领域。您可以基于ACK集群创建Ray Cluster,并在本地提交Job执行分布式任务,用于训练模型、数据处理、模型评估等场景。在本地RayCluster提交Ray Job。
前提条件
Ray Cluster内运行Job作业有多种方式。更多信息,请参见how do you use the ray-client和quick start useing the ray job cli。
执行以下命令,查询Ray Cluster的Pod信息。
kubectl get pod -n ${RAY_CLUSTER_NS}
预期输出:
NAME READY STATUS RESTARTS AGE myfirst-ray-cluster-head-v7pbw 2/2 Running 0 39m
执行以下命令,您可以在本地终端连接到Pod内部的Bash Shell。
请将Pod名称替换为您实际的Pod的名称。
kubectl exec -it -n ${RAY_CLUSTER_NS} myfirst-ray-cluster-head-v7pbw -- bash
在Head Pod中使用
echo
或cat
命令,保存my_script.py文件。import ray import os # 连接本地或者远程ray cluster ray.init() @ray.remote(num_cpus=1) class Counter: def __init__(self): self.name = "test_counter" self.counter = 0 def increment(self): self.counter += 1 def get_counter(self): return "{} got {}".format(self.name, self.counter) counter = Counter.remote() for _ in range(10000): counter.increment.remote() print(ray.get(counter.get_counter.remote()))
运行
my_script.py
脚本,执行分布式任务。python my_script.py # 预期输出 2024-01-24 04:25:27,286 INFO worker.py:1329 -- Using address 127.0.0.1:6379 set in the environment variable RAY_ADDRESS 2024-01-24 04:25:27,286 INFO worker.py:1458 -- Connecting to existing Ray cluster at address: 172.16.0.236:6379... 2024-01-24 04:25:27,295 INFO worker.py:1633 -- Connected to Ray cluster. View the dashboard at http://172.16.0.236:8265 test_counter got 0 test_counter got 1 test_counter got 2 test_counter got 3 ...
相关操作
您可以在本地访问Ray的可视化Web界面DashBoard,请参见本地访问Ray DashBoard。
关于如何在普通ECS节点或虚拟ECI节点中结合Ray autoscaler实现弹性伸缩,请参见基于Ray autoscaler与ACK autoscaler实现弹性伸缩、结合Ray autoscaler实现ECI节点的弹性伸缩。
文档内容是否对您有帮助?